这些看起来很呆的Python编写习惯 您所在的位置:网站首页 python print科学计数法 这些看起来很呆的Python编写习惯

这些看起来很呆的Python编写习惯

2023-03-29 20:44| 来源: 网络整理| 查看: 265

hello我是啥都生,在这篇文章中,将介绍17个有很大改进空间的Python编程案例,既然都用Python了,那么提供的轮子就赶紧用起来哈哈,一起看看吧~

1.使用多个打印语句

初级如果想打印多个变量,部分人会觉得每个变量都应该有自己的 print() 语句,哈哈哈以前我也是

进阶

使用多个打印语句尤其是新手在使用 Python 编码时最常犯的错误,其实,使用print(),可以在单个打印语句中打印多个变量,如下所示:

上面的sep参数指定使用相同打印语句(上面的 a、b 和c)打印的各种变量之间的分隔符

注意,end参数用于指定print语句的结束符

在上面的代码中,end='\n---\n'参数打印换行符,再是 ---,然后是换行符

2. 使用Print语句代替日志记录模块

在小型项目中可能无关紧要,我自己也是喜欢print,但值得一提的是大型项目中日志就太重要了

初级

进阶

3.使用for循环打印相同的变量

初级

如标题所述,我们的目标是多次打印同一个变量

当然,创建一个for循环打印,能说这有问题吗,当然没什么问题

进阶

虽然写一个for循环没坏处,但没必要,可以这样

4.创建一个单独的变量来跟踪循环中的索引

初级 - 1

为实现这一点,通常会定义一个新变量idx来跟踪索引值并在每次迭代时递增它,如下所示:

初级 - 2

或者,创建一个range迭代器来跟踪索引,如下:

进阶

不得不提enumerate()方法,使用此方法,可以跟踪索引idx和值i,如下所示:

5.使用for循环将列表转换为字符串

初级

如下所示,使用for循环一次拼接列表中的一个元素

进阶

其实将列表转换为字符串的简便方法是使用join()方法,如下所示:

这不仅能免于编写一些不必要的长代码,而且与 for 循环方法一样直观。

6.使用for循环从列表中删除重复项

初级

遍历输入列表并将唯一元素存储在新列表中

进阶

其实,集合就行啦,使用一行代码就可以从列表中删除重复项

二者可以相互转换

7.使用for循环在列表中搜索元素

初级

假设想知道某个元素是否存在于列表(或集合)中并返回布尔(如果存在则为True,否则为False)

初级用法如下所示:

太复杂了

进阶

使用in关键字将其简化为单行实现

 

8.使用索引变量迭代两个相同size的可迭代对象

初级

类似于在第4节中所提,定义一个专门用于索引的变量,在两个size相同的列表中取值,如下所示:

进阶

进阶一点的方法是使用zip()函数,将两个可迭代对象中的相应值配对

9.使用for循环反转列表

初级

反向迭代列表并将元素添加到新列表,如下所示:

进阶

如果了解 Python 中的切片,那么一个简单的单行代码就可以实现(其实内置方法等都可以实现)

10.使用for循环计算可迭代对象中元素的出现次数

初级

查找元素频率的简单方法是使用for循环遍历列表并计算次数

进阶

其实可以使用count()方法:

同样的,也可以在字符串中使用:

11.使用for循环获取字符串的子字符串

初级

这里的目标是返回一个长度为n_chars的子串,从位置start_index开始

很多人解决这个问题的方法是使用for循环,如下所示:

进阶

单行方法是使用切片,这样可以避免编写for循环

12.定义长整型常量

假设想声明一个值为 10²¹ 的整型变量

初级

很多情况下,会连续写入零并在键入时进行计数

但是别人若要参考这段代码,就得把所有的零都数一遍,当场去世

进阶

为提高可读性,可以用_(下划线)分隔,如下:

但这仍然很麻烦,还是要数零。

如果数字能以 a^b 的形式表示,则可以改用 pow()方法,或者科学计数法:

13.使用if条件更改字符串的大小写

给定一个字符串,目标是将大写字母变为小写,反之亦然

初级

检查每个元素的情况,然后为每个情况设置特定条件

进阶

可以改用swapcase()方法

14.获得两个集合的并集

初级

迭代这两个集合并将元素添加到一个新集合中

进阶

Python 为两个集合的并集提供了union()方法

更重要的是,可以将其扩展到任意数量的输入集:

想象一下,需要编写多少个for循环来合并这四个集合,同样的集合还有求补、交等等便捷内置方法

15.更改列表中所有元素的数据类型

给定一个表示整数的字符串列表,目标是通过更改数据类型将它们转换为整数列表

初级

循环遍历列表并对单个元素进行类型转换

进阶

使用map(),如下所示:

作为其第一个参数,map()方法接受一个函数 int,第二个参数是一个可迭代对象 input_list

16.交换变量

给定两个变量,目标是将第一个变量的值传递给第二个变量,将第二个变量的值传递给第一个变量

初级

大多数写惯了 C/C++ 的程序员采用的方法是定义一个新变量temp

进阶

而Python 允许在单个语句中进行多次赋值,从而消除对临时变量的需要,就是解包啦,之前教程都有说过

17.使用嵌套循环生成两个列表的所有组合

给定两个列表(a的长度为 n,b的长度为m),生成所有n*m结构

初级

编写两个嵌套的for循环并将所有组合添加到列表中

进阶

使用 itertools 库中的product()方法,如下所示:

事实上包括我在内,以前很多时候都习惯于用for循环等解决问题,其实就是对内置函数/方法不熟悉~

以上内容有任何错误欢迎指出,我是啥都生,下期再见



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有